import java.util.Scanner;
class Person {
	private String name;
	private boolean gender;
	private int age;
	private int id;
	static int m=0;
	
	static{  
        System.out.println("This is static initialization block");  
    }  
	  
		
		{   id=m;
			System.out.printf("This is initialization block, id is %d%n",m++);	
		}
			
	public Person(){
		System.out.println("This is constructor");
		System.out.printf("%s,%d,%s,%d%n",name,age,gender,id);
	}
	
	public Person(String name,int age, boolean gender) {
		this.name = name;
		this.gender = gender;
		this.age = age;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", gender=" + gender + ", id=" + id + "]";
	}

}     
public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in); 
        int n =Integer.parseInt(in.nextLine());
		Person[] persons = new Person[n];
		for(int j=0;j<persons.length;j++){
			Person person=new Person(in.next(),in.nextInt(),in.nextBoolean());
			persons[j]=person;
		}
	  for(int i=persons.length-1;i>=0;i--){
		System.out.println(persons[i]);
	  }
		System.out.println(new Person());
		in.close();
	}

	}